<!DOCTYPE html>



  


<html class="theme-next muse use-motion" lang="">
<head><meta name="generator" content="Hexo 3.8.0">
  <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="theme-color" content="#222">









<meta http-equiv="Cache-Control" content="no-transform">
<meta http-equiv="Cache-Control" content="no-siteapp">
















  
  
  <link href="/blog/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css">







<link href="/blog/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css">

<link href="/blog/css/main.css?v=5.1.4" rel="stylesheet" type="text/css">


  <link rel="apple-touch-icon" sizes="180x180" href="/blog/images/apple-touch-icon-next.png?v=5.1.4">


  <link rel="icon" type="image/png" sizes="32x32" href="/blog/images/favicon-32x32-next.png?v=5.1.4">


  <link rel="icon" type="image/png" sizes="16x16" href="/blog/images/favicon-16x16-next.png?v=5.1.4">


  <link rel="mask-icon" href="/blog/images/logo.svg?v=5.1.4" color="#222">





  <meta name="keywords" content="Hexo, NexT">





  <link rel="alternate" href="/blog/atom.xml" title="Hexo" type="application/atom+xml">






<meta property="og:type" content="website">
<meta property="og:title" content="Hexo">
<meta property="og:url" content="http://songhangfei.gitee.io/blog/index.html">
<meta property="og:site_name" content="Hexo">
<meta property="og:locale" content="default">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Hexo">



<script type="text/javascript" id="hexo.configurations">
  var NexT = window.NexT || {};
  var CONFIG = {
    root: '/blog/',
    scheme: 'Muse',
    version: '5.1.4',
    sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":false,"onmobile":false},
    fancybox: true,
    tabs: true,
    motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
    duoshuo: {
      userId: '0',
      author: 'Author'
    },
    algolia: {
      applicationID: '',
      apiKey: '',
      indexName: '',
      hits: {"per_page":10},
      labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
    }
  };
</script>



  <link rel="canonical" href="http://songhangfei.gitee.io/blog/">





  <title>Hexo</title>
  








</head>

<body itemscope="" itemtype="http://schema.org/WebPage" lang="default">

  
  
    
  

  <div class="container sidebar-position-left 
  page-home">
    <div class="headband"></div>
	<a href="http://songhangfei.gitee.io/blog" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewbox="0 0 250 250" style="fill:#64CEAA; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"/><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"/><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"/></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
    <header id="header" class="header" itemscope="" itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-wrapper">
  <div class="site-meta ">
    

    <div class="custom-logo-site-title">
      <a href="/blog/" class="brand" rel="start">
        <span class="logo-line-before"><i></i></span>
        <span class="site-title">Hexo</span>
        <span class="logo-line-after"><i></i></span>
      </a>
    </div>
      
        <p class="site-subtitle"></p>
      
  </div>

  <div class="site-nav-toggle">
    <button>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
    </button>
  </div>
</div>

<nav class="site-nav">
  

  
    <ul id="menu" class="menu">
      
        
        <li class="menu-item menu-item-home">
          <a href="/blog/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-home"></i> <br>
            
            Home
          </a>
        </li>
      
        
        <li class="menu-item menu-item-archives">
          <a href="/blog/archives/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-archive"></i> <br>
            
            Archives
          </a>
        </li>
      

      
    </ul>
  

  
</nav>



 </div>
    </header>

    <main id="main" class="main">
      <div class="main-inner">
        <div class="content-wrap">
          <div id="content" class="content">
            
  <section id="posts" class="posts-expand">
    
      

  

  
  
  

  <article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://songhangfei.gitee.io/blog/blog/2018/11/22/使用预编译语言与连接池/">

    <span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
      <meta itemprop="name" content="John Doe">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Hexo">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2018/11/22/使用预编译语言与连接池/" itemprop="url">Untitled</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2018-11-22T16:27:13+08:00">
                2018-11-22
              </time>
            

            

            
          </span>

          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>##一、使用预编译语言防止SQL注入</p>
<pre><code>public boolean existsUser(User user) {
    //1.获取连接对象
     Connection con=DBCP.getCon();
    //2.创建预编译对象
     PreparedStatement st=null;
     ResultSet set=null;
     try {//? 占位符
        st=con.prepareStatement(&quot;select name from user where name=?&quot;);
        //给预编译对象占位符进行赋值
        st.setString(1,user.getName());
        //执行预编译语句  返回一个ResultSet
        set=st.executeQuery();
        //遍历set集合
        while(set.next()){
          //执行到这里说明有名字
            return true;
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        //关闭所有连接
        DBCP.closeAll(con, st, set);
    }

    return false;
}
</code></pre><p>#####Statement的几种实现</p>
<p>Statement 对象用于将SQL语句发送到数据库中。<br>Statement每次执行SQL语句，数据库都要执行SQL语句的编译，最好用于仅执行一次查询并返回结果的情形</p>
<ul>
<li>1、执行静态SQL语句，通常通过Statement实例实现。 </li>
<li>2、执行动态SQL语句，通常通过PreparedStatement实例实现。 </li>
<li>3、执行数据库存储过程，通常通过CallableStatement实例实现。</li>
</ul>
<p>#####PreparedStatement与Statement有什么区别</p>
<ul>
<li>1、PreparedStatement能预编译，这条预编译的SQL查询语句能在将来的查询中重用，这样一来，它比Statement对象生成的查询速度更快。 </li>
<li>2、PreparedStatement可以写动态参数化的查询 </li>
<li>3、PreparedStatement可以防止SQL注入式攻击 </li>
<li>4、PreparedStatement查询可读性更好，追加条件的语句很乱 </li>
<li>5、PreparedStatement不允许一个占位符（？）有多个值</li>
</ul>
<p>##二、连接池的使用</p>
<p>不使用连接池时：</p>
<pre><code>conn= DriverManager.getConnection(url,username,password);
</code></pre><p>连接池的特性：</p>
<p>连接对象不是直接从DriverManager获取，而是从DataSource数据源对象获取，不同的数据源由不同的服务商提供</p>
<pre><code>常见的数据源有：
    dbcp Spring
    c3po Hibernate
    druid 阿里巴巴
操作步骤：
1、创建数据源对象
2、获取Connection连接
3、关闭Connection连接
</code></pre><p>#############示例代码：</p>
<pre><code>//加载属性文件 配置信息
private static Properties p = new Properties();
private static Connection conn;
//数据源，连接对象从这里获取
private static DataSource dataSource;
static{
    //加载器对象
    ClassLoader loader = Thread.currentThread().getContextClassLoader();
    //通过加载器对象获取一个输入流
    InputStream inStream = loader.getResourceAsStream(&quot;dbcp.properties&quot;);
    try {
        p.load(inStream);
        //通过工厂方法创建一个数据源对象，并将p中的配置信息传过去
        dataSource = BasicDataSourceFactory.createDataSource(p);
        //Class.forName(p.getProperty(&quot;driverClassName&quot;));
    } catch (Exception e) {
        e.printStackTrace();
    }
}
//获取连接对象  通过数据源来获取数据库连接对象
public static Connection getConnection(){
    try {
            //conn = DriverManager.getConnection(p.getProperty(&quot;url&quot;), p.getProperty(&quot;username&quot;), p.getProperty(&quot;password&quot;));
            conn = dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }return conn;
    }
</code></pre><p>########dbcp.properties内容：</p>
<pre><code>driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/world
username=root
password=123456
maxActive=10
#数据库驱动
driverClassName=com.mysql.jdbc.Driver
#数据库连接地址
url=jdbc:mysql://localhost:3306/world
#用户名
username=root
#密码
password=123456
#连接池的最大数据库连接数。设为0表示无限制
maxActive=30
#最大空闲数，数据库连接的最大空闲时间。超过空闲时间，数据库连
#接将被标记为不可用，然后被释放。设为0表示无限制
maxIdle=10
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制
maxWait=1000
#超过removeAbandonedTimeout时间后，是否进 行没用连接（废弃）的回收（默认为false，调整为true)
removeAbandoned=true
#超过时间限制，回收没有用(废弃)的连接（默认为 300秒，调整为180）
removeAbandonedTimeout=180
</code></pre>
          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://songhangfei.gitee.io/blog/blog/2018/11/22/hello-world/">

    <span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
      <meta itemprop="name" content="John Doe">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Hexo">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2018/11/22/hello-world/" itemprop="url">Hello World</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2018-11-22T15:17:02+08:00">
                2018-11-22
              </time>
            

            

            
          </span>

          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>Welcome to <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="noopener">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="noopener">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="noopener">GitHub</a>.</p>
<h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">"My New Post"</span></span><br></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/writing.html" target="_blank" rel="noopener">Writing</a></p>
<h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/server.html" target="_blank" rel="noopener">Server</a></p>
<h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/generating.html" target="_blank" rel="noopener">Generating</a></p>
<h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/deployment.html" target="_blank" rel="noopener">Deployment</a></p>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://songhangfei.gitee.io/blog/blog/2018/09/19/MySQL子查询/">

    <span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
      <meta itemprop="name" content="John Doe">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Hexo">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2018/09/19/MySQL子查询/" itemprop="url">MySQL数据库操作</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2018-09-19T00:00:00+08:00">
                2018-09-19
              </time>
            

            

            
          </span>

          
            <span class="post-category">
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
                  <a href="/blog/categories/MySQL/" itemprop="url" rel="index">
                    <span itemprop="name">MySQL</span>
                  </a>
                </span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>#MySQL中的子查询</p>
<p>##一、子查询定义</p>
<p>　　定义：</p>
<p>　　子查询允许把一个查询嵌套在另一个查询当中。</p>
<p>　　子查询，又叫内部查询，相对于内部查询，包含内部查询的就称为外部查询。</p>
<p>　　子查询可以包含普通select可以包括的任何子句，比如：distinct、 group by、order by、limit、join和union等；但是对应的外部查询必须是以下语句之一：</p>
<pre><code>select、insert、update、delete、set或 者do。
</code></pre><p>　　子查询的位置： </p>
<pre><code>select 中、from 后、where 中.group by 和order by 中无实用意义。
</code></pre><p>##二、子查询分类</p>
<p>###子查询分为如下几类： </p>
<ul>
<li>标量子查询：返回单一值的标量，最简单的形式。 </li>
<li>列子查询：返回的结果集是 N 行一列。 </li>
<li>行子查询：返回的结果集是一行 N 列。 </li>
<li><p>表子查询：返回的结果集是 N 行 N 列。 </p>
<p>  可以使用的操作符：</p>
<pre><code>= &gt; &lt; &gt;= &lt;= &lt;&gt; ANY IN SOME ALL EXISTS 
</code></pre></li>
</ul>
<p>　　一个子查询会返回一个标量（就一个值）、一个行、一个列或一个表，这些子查询称之为标量、行、列和表子查询。</p>
<p>　　如果子查询返回一个标量值（就一个值），那么外部查询就可以使用：=、&gt;、&lt;、&gt;=、&lt;=和&lt;&gt;符号进行比较判断；如果子查询返回的不是一个标量值，而外部查询使用了比较符和子查询的结果进行了比较，那么就会抛出异常。</p>
<p>#####1. 标量子查询：</p>
<p>　　是指子查询返回的是单一值的标量，如一个数字或一个字符串，也是子查询中最简单的返回形式。 可以使用 = &gt; &lt; &gt;= &lt;= &lt;&gt; 这些操作符对子查询的标量结果进行比较，通常子查询的位置在比较式的右侧 
　　　　</p>
<p>#######示例： 　　</p>
<pre><code>SELECT * FROM article WHERE uid = (SELECT uid FROM user WHERE status=1 ORDER BY uid DESC LIMIT 1)`
SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)`
SELECT * FROM article AS t WHERE 2 = (SELECT COUNT(*) FROM article WHERE article.uid = t.uid)`
</code></pre><p>#####2. MySQL 列子查询：</p>
<p>　　　　指子查询返回的结果集是 N 行一列，该结果通常来自对表的某个字段查询返回。</p>
<p>　　　　可以使用 = &gt; &lt; &gt;= &lt;= &lt;&gt; 这些操作符对子查询的标量结果进行比较，通常子查询的位置在比较式的右侧</p>
<p>　　　　可以使用 IN、ANY、SOME 和 ALL 操作符，不能直接使用 = &gt; &lt; &gt;= &lt;= &lt;&gt; 这些比较标量结果的操作符。</p>
<p>#######示例：</p>
<pre><code>SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)`
SELECT s1 FROM table1 WHERE s1 &gt; ANY (SELECT s2 FROM table2)`
SELECT s1 FROM table1 WHERE s1 &gt; ALL (SELECT s2 FROM table2)`
</code></pre><p>　　　　NOT IN 是 &lt;&gt; ALL 的别名，二者相同。</p>
<p>　　　　特殊情况 </p>
<p>　　　　　　如果 table2 为空表，则 ALL 后的结果为 TRUE；</p>
<p>　　　　　　如果子查询返回如 (0,NULL,1) 这种尽管 s1 比返回结果都大，但有空行的结果，则 ALL 后的结果为 UNKNOWN 。</p>
<p>#######注意：对于 table2 空表的情况，下面的语句均返回 NULL：</p>
<pre><code>SELECT s1 FROM table1 WHERE s1 &gt; (SELECT s2 FROM table2)`
SELECT s1 FROM table1 WHERE s1 &gt; ALL (SELECT MAX(s1) FROM table2)`
</code></pre><p> 　　</p>
<p>#####3. MySQL 行子查询：</p>
<p>　　指子查询返回的结果集是一行 N 列，该子查询的结果通常是对表的某行数据进行查询而返回的结果集。</p>
<p>#######例子：<br>    SELECT <em> FROM table1 WHERE (1,2) = (SELECT column1, column2 FROM table2)`<br>注：(1,2) 等同于 row(1,2)<br>    SELECT </em> FROM article WHERE (title,content,uid) = (SELECT title,content,uid FROM blog WHERE bid=2)`</p>
<p>#####4. MySQL 表子查询：</p>
<p>　　指子查询返回的结果集是 N 行 N 列的一个表数据。</p>
<p>#######例子：</p>
<pre><code>SELECT * FROM article WHERE (title,content,uid) IN (SELECT title,content,uid FROM blog)
</code></pre><p>##三、字查询例举</p>
<p>#####1. ANY进行子查询</p>
<p>　　any关键词的意思是“对于子查询返回的列中的任何一个数值，如果比较结果为TRUE，就返回TRUE”。</p>
<p>　　好比“10 &gt;any(11, 20, 2, 30)”，由于10&gt;2，所以，该该判断会返回TRUE；只要10与集合中的任意一个进行比较，得到TRUE时，就会返回TRUE。　　</p>
<pre><code>select table1.customer_id,city,count(order_id)
from table1 join table2
on table1.customer_id=table2.customer_id
where table1.customer_id&lt;&gt;&apos;tx&apos; and table1.customer_id&lt;&gt;&apos;9you&apos;
group by customer_id
having count(order_id) &gt;
any (
select count(order_id)
from table2
where customer_id=&apos;tx&apos; or customer_id=&apos;9you&apos;
group by customer_id);
</code></pre><p>any的意思比较好明白，直译就是任意一个，只要条件满足任意的一个，就返回TRUE。</p>
<p>#####2. 使用IN进行子查询</p>
<p>　　使用in进行子查询，这个我们在日常写sql的时候是经常遇到的。in的意思就是指定的一个值是否在这个集合中，如何在就返回TRUE；否则就返回FALSE了。</p>
<p>　　in是“=any”的别名，在使用“=any”的地方，我们都可以使用“in”来进行替换。</p>
<p>　　有了in，肯定就有了not in；not in并不是和&lt;&gt;any是同样的意思，not in和&lt;&gt;all是一个意思。</p>
<p>#####3. 使用SOME进行子查询</p>
<p>　　some是any的别名，用的比较少。
　　</p>
<p>#####4. 使用ALL进行子查询</p>
<p>　　all必须与比较操作符一起使用。all的意思是“对于子查询返回的列中的所有值，如果比较结果为TRUE，则返回TRUE”。</p>
<p>　　好比“10 &gt;all(2, 4, 5, 1)”，由于10大于集合中的所有值，所以这条判断就返回TRUE；而如果为“10 &gt;all(20, 3, 2, 1, 4)”，这样的话，由于10小于20，所以该判断就会返回FALSE。</p>
<p>　　&lt;&gt;all的同义词是not in，表示不等于集合中的所有值，这个很容易和&lt;&gt;any搞混，平时多留点心就好了。</p>
<p>#####5.标量子查询</p>
<p>　　根据子查询返回值的数量，将子查询可以分为标量子查询和多值子查询。在使用比较符进行子查询时，就要求必须是标量子查询；如果是多值子查询时，使用比较符，就会抛出异常。</p>
<p>#####6. 多值子查询</p>
<p>　　与标量子查询对应的就是多值子查询了，多值子查询会返回一列、一行或者一个表，它们组成一个集合。我们一般使用的any、in、all和some等词，将外部查询与子查询的结果进行判断。如果将any、in、all和some等词与标量子查询，就会得到空的结果。</p>
<p>#####7. 独立子查询</p>
<p>　　独立子查询是不依赖外部查询而运行的子查询。什么叫依赖外部查询？先看下面两个sql语句。</p>
<p>######sql语句1：获得所有hangzhou顾客的订单号。　</p>
<pre><code>select order_id
from table2
where customer_id in
    (select customer_id
    from table1
    where city=&apos;hangzhou&apos;);
</code></pre><p>######sql语句2：获得城市为hangzhou，并且存在订单的用户。</p>
<pre><code>select *
from table1
where city=&apos;hangzhou&apos; and exists
    (select *
    from table2
    where table1.customer_id=table2.customer_id);
</code></pre><p>　　上面的两条sql语句，虽然例子举的有点不是很恰当，但是足以说明这里的问题了。</p>
<p>　　对于sql语句1，我们将子查询单独复制出来，也是可以单独执行的，就是子查询与外部查询没有任何关系。</p>
<p>　　对于sql语句2，我们将子查询单独复制出来，就无法单独执行了，由于sql语句2的子查询依赖外部查询的某些字段，这就导致子查询就依赖外部查询，就产生了相关性。</p>
<p>　　对于子查询，很多时候都会考虑到效率的问题。当我们执行一个select语句时，可以加上explain关键字，用来查看查询类型，查询时使用的索引以及其它等等信息。比如这么用：</p>
<pre><code>explain select order_id
from table2 where customer_id in
    (select customer_id
    from table1
    where city=&apos;hangzhou&apos;);
</code></pre><p> 　　使用独立子查询，如果子查询部分对集合的最大遍历次数为n，外部查询的最大遍历次数为m时，我们可以记为：O(m+n)。而如果使用相关子查询，它的遍历 次数可能会达到O(m+m*n)。可以看到，效率就会成倍的下降；所以，大伙在使用子查询时，一定要考虑到子查询的相关性。</p>
<p>#####8.相关子查询</p>
<p>　　相关子查询是指引用了外部查询列的子查询，即子查询会对外部查询的每行进行一次计算。但是在MySQL的内部，会进行动态优化，会随着情况的不同会 有所不同。使用相关子查询是最容易出现性能的地方。而关于sql语句的优化，这又是一个非常大的话题了，只能通过实际的经验积累，才能更好的去理解如何进 行优化。</p>
<p>#####9.EXISTS谓词</p>
<p>　　EXISTS是一个非常牛叉的谓词，它允许数据库高效地检查指定查询是否产生某些行。根据子查询是否返回行，该谓词返回TRUE或FALSE。与其 它谓词和逻辑表达式不同的是，无论输入子查询是否返回行，EXISTS都不会返回UNKNOWN，对于EXISTS来说，UNKNOWN就是FALSE。 还是上面的语句，获得城市为hangzhou，并且存在订单的用户。</p>
<pre><code>select *
from table1
where city=&apos;hangzhou&apos; and exists
    (select *
    from table2
    where table1.customer_id=table2.customer_id);
</code></pre><p> 　　</p>
<p>　　关于IN和EXISTS的主要区别在于三值逻辑的判断上。EXISTS总是返回TRUE或FALSE，而对于IN，除了TRUE、FALSE值外， 还有可能对NULL值返回UNKNOWN。但是在过滤器中，UNKNOWN的处理方式与FALSE相同，因此使用IN与使用EXISTS一样，SQL优化 器会选择相同的执行计划。</p>
<p>　　说到了IN和EXISTS几乎是一样的，但是，就不得不说到NOT IN和NOT EXISTS，对于输入列表中包含NULL值时，NOT EXISTS和NOT IN之间的差异就表现的非常大了。输入列表包含NULL值时，IN总是返回TRUE和UNKNOWN，因此NOT IN就会得到NOT TRUE和NOT UNKNOWN，即FALSE和UNKNOWN。</p>
<p>#####10. 派生表</p>
<p>　　上面也说到了，在子查询返回的值中，也可能返回一个表，如果将子查询返回的虚拟表再次作为FROM子句的输入时，这就子查询的虚拟表就成为了一个派生表。</p>
<p>#######语法结构如下：</p>
<pre><code>FROM (subquery expression) AS derived_table_alias
</code></pre><p>由于派生表是完全的虚拟表，并没有也不可能被物理地具体化。</p>
<p>##四、子查询优化<br>　　很多查询中需要使用子查询。使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作，同时也可以避免事务或者表锁死。子查询可以使查询语 句很灵活，但子查询的执行效率不高。</p>
<p>　　子查询时，MySQL需要为内层查询语句的查询结果建立一个临时表。然后外层查询语句再临时表中查询记录。查询完毕 后，MySQL需要撤销这些临时表。因此，子查询的速度会受到一定的影响。如果查询的数据量比较大，这种影响就会随之增大。</p>
<p>　　在MySQL中可以使用连接查 询来替代子查询。连接查询不需要建立临时表，其速度比子查询要快。</p>
<p>　　使用连接(JOIN)来代替子查询，如： 　　</p>
<p>#######例子1：</p>
<pre><code>SELECT * FROM t1
WHERE t1.a1 NOT in (SELECT a2 FROM t2 )
</code></pre><p>#######优化后：</p>
<pre><code>SELECT * FROM t1
LEFT JOIN t2 ON t1.a1=t2.a2
WHERE t2.a2 IS NULL  
</code></pre><p>#####例子2：<br>SELECT <em> FROM article WHERE (title,content,uid) IN (SELECT title,content,uid FROM blog)<br>优化后：<br>SELECT </em> FROM article<br>inner join blog<br>on (article.title=blog.title AND article.content=blog.content AND article.uid=blog.uid)</p>
<p>###不能优化的子查询： </p>
<p>######1、mysql不支持子查询合并和聚合函数子查询优化，mariadb对聚合函数子查询进行物化优化； </p>
<p>######2、mysql不支持from子句子查询优化，mariadb对from子句子查询进行子查询上拉优化； </p>
<p>######3、mysql和mariadb对子查询展开提供有限的支持，如对主键的操作才能进行上拉子查询优化； </p>
<p>######4、mysql不支持exists子查询优化，mariadb对exists关联子查询进行半连接优化，对exists非关联子查询没有进一步进行优化； </p>
<p>######5、mysql和mariadb不支持not exists子查询优化； </p>
<p>######6、mysql和mariadb对in子查询，对满足半连接语义的查询进行半连接优化，再基于代价评估进行优化，两者对半连接的代价评估选择方式有差异； </p>
<p>######7、mysql不支持not in子查询优化，mariadb对非关联not in子查询使用物化优化，对关联not in子查询不做优化； </p>
<p>######8、mysql和mariadb对&gt;all非关联子查询使用max函数，&lt;all非关联子查询使用min函数，对=all和非关联子查询使用exists优化； </p>
<p>######9、对&gt;some和&gt;any非关联子查询使用min函数，对&lt;some和&lt;any非关联子查询使用max函数，=any 和=some子查询使用半连接进行优化，对&gt;some和&gt;any关联子查询以及&lt;some和&lt;any关联子查询只有exists 优化。</p>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://songhangfei.gitee.io/blog/blog/2018/09/18/MySQL操作/">

    <span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
      <meta itemprop="name" content="John Doe">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Hexo">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2018/09/18/MySQL操作/" itemprop="url">MySQL数据库操作</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2018-09-18T00:00:00+08:00">
                2018-09-18
              </time>
            

            

            
          </span>

          
            <span class="post-category">
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
                  <a href="/blog/categories/MySQL/" itemprop="url" rel="index">
                    <span itemprop="name">MySQL</span>
                  </a>
                </span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          <p>##用户管理：</p>
<p>　　1、新建用户：</p>
<p>　　　　&gt;CREATE USER name IDENTIFIED BY ‘ssapdrow’;</p>
<p>　　2、更改密码：</p>
          <!--noindex-->
          <div class="post-button text-center">
            <a class="btn" href="/blog/2018/09/18/MySQL操作/#more" rel="contents">
              Read more &raquo;
            </a>
          </div>
          <!--/noindex-->
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://songhangfei.gitee.io/blog/blog/2018/08/20/day06笔记/">

    <span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
      <meta itemprop="name" content="John Doe">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Hexo">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2018/08/20/day06笔记/" itemprop="url">Java面向对象</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2018-08-20T00:00:00+08:00">
                2018-08-20
              </time>
            

            

            
          </span>

          
            <span class="post-category">
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
                  <a href="/blog/categories/Java基础/" itemprop="url" rel="index">
                    <span itemprop="name">Java基础</span>
                  </a>
                </span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>###06.01_面向对象(面向对象思想概述)(了解)</p>
<ul>
<li>A:面向过程思想概述<ul>
<li>第一步</li>
<li>第二步 </li>
</ul>
</li>
<li>B:面向对象思想概述<ul>
<li>找对象(第一步,第二步) </li>
</ul>
</li>
<li>C:举例<ul>
<li>买煎饼果子</li>
<li>洗衣服 </li>
</ul>
</li>
<li>D:面向对象思想特点<ul>
<li>a:是一种更符合我们思想习惯的思想</li>
<li>b:可以将复杂的事情简单化</li>
<li>c:将我们从执行者变成了指挥者<ul>
<li>角色发生了转换</li>
</ul>
</li>
</ul>
</li>
<li>E:面向对象开发<ul>
<li>就是不断的创建对象，使用对象，指挥对象做事情。</li>
</ul>
</li>
<li>F:面向对象设计<ul>
<li>其实就是在管理和维护对象之间的关系。</li>
</ul>
</li>
<li>G:面向对象特征<ul>
<li>封装(encapsulation)</li>
<li>继承(inheritance)</li>
<li>多态(polymorphism)</li>
</ul>
</li>
</ul>
<p>###06.02_面向对象(类与对象概述)(掌握)</p>
<ul>
<li>A:我们学习编程是为了什么<ul>
<li>为了把我们日常生活中实物用学习语言描述出来</li>
</ul>
</li>
<li>B:我们如何描述现实世界事物<ul>
<li>属性    就是该事物的描述信息(事物身上的名词)</li>
<li>行为    就是该事物能够做什么(事物身上的动词)</li>
</ul>
</li>
<li>C:Java中最基本的单位是类,Java中用class描述事物也是如此<ul>
<li>成员变量    就是事物的属性</li>
<li>成员方法    就是事物的行为</li>
</ul>
</li>
<li>D:定义类其实就是定义类的成员(成员变量和成员方法)<ul>
<li>a:成员变量    和以前定义变量是一样的，只不过位置发生了改变。在类中，方法外。</li>
<li>b:成员方法    和以前定义方法是一样的，只不过把static去掉，后面在详细讲解static的作用。</li>
</ul>
</li>
<li>E:类和对象的概念<ul>
<li>a:类：是一组相关的属性和行为的集合</li>
<li>b:对象：是该类事物的具体体现</li>
<li>c:举例：<ul>
<li>类     学生</li>
<li>对象    具体的某个学生就是一个对象</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###06.03_面向对象(学生类的定义)(掌握)</p>
<ul>
<li>A:学生事物</li>
<li>B:学生类</li>
<li>C:案例演示<ul>
<li>属性:姓名,年龄,性别</li>
<li>行为:学习,睡觉</li>
</ul>
</li>
</ul>
<p>###06.04_面向对象(手机类的定义)(掌握)</p>
<ul>
<li>模仿学生类，让学生自己完成<ul>
<li>属性:品牌(brand)价格(price)</li>
<li>行为:打电话(call),发信息(sendMessage)玩游戏(playGame)</li>
</ul>
</li>
</ul>
<p>###06.05_面向对象(学生类的使用)(掌握)</p>
<ul>
<li>A:文件名问题<ul>
<li>在一个java文件中写两个类：一个基本的类，一个测试类。</li>
<li>建议：文件名称和测试类名称一致。</li>
</ul>
</li>
<li>B:如何使用对象?<ul>
<li>创建对象并使用</li>
<li>格式：类名 对象名 = new 类名();</li>
</ul>
</li>
<li>D:如何使用成员变量呢?<ul>
<li>对象名.变量名</li>
</ul>
</li>
<li>E:如何使用成员方法呢?<ul>
<li>对象名.方法名(…)</li>
</ul>
</li>
</ul>
<p>###06.06_面向对象(手机类的使用)(掌握)</p>
<ul>
<li>A:学生自己完成<ul>
<li>模仿学生类，让学生自己完成</li>
</ul>
</li>
</ul>
<p>###06.07_面向对象(一个对象的内存图)(掌握)</p>
<ul>
<li>A:画图演示<ul>
<li>一个对象</li>
</ul>
</li>
</ul>
<p>###06.08_面向对象(二个对象的内存图)(了解)</p>
<ul>
<li>A:画图演示<ul>
<li>二个不同的对象</li>
</ul>
</li>
</ul>
<p>###06.09_面向对象(三个引用两个对象的内存图)(了解)</p>
<ul>
<li>A:画图演示<ul>
<li>三个引用，有两个对象的引用指向同一个地址</li>
</ul>
</li>
</ul>
<p>###06.10_面向对象(成员变量和局部变量的区别)(掌握)</p>
<ul>
<li>A:在类中的位置不同<ul>
<li>成员变量：在类中方法外</li>
<li>局部变量：在方法定义中或者方法声明上</li>
</ul>
</li>
<li>B:在内存中的位置不同<ul>
<li>成员变量：在堆内存(成员变量属于对象,对象进堆内存)</li>
<li>局部变量：在栈内存(局部变量属于方法,方法进栈内存)</li>
</ul>
</li>
<li>C:生命周期不同<ul>
<li>成员变量：随着对象的创建而存在，随着对象的消失而消失</li>
<li>局部变量：随着方法的调用而存在，随着方法的调用完毕而消失</li>
</ul>
</li>
<li><p>D:初始化值不同</p>
<ul>
<li>成员变量：有默认初始化值</li>
<li>局部变量：没有默认初始化值，必须定义，赋值，然后才能使用。</li>
</ul>
</li>
<li><p>注意事项：</p>
<ul>
<li>局部变量名称可以和成员变量名称一样，在方法中使用的时候，采用的是就近原则。</li>
<li>基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char</li>
<li>引用数据类型变量包括哪些:数组,类,接口,枚举</li>
</ul>
</li>
</ul>
<p>###06.11_面向对象(方法的形式参数是类名的时候如何调用)(掌握)</p>
<ul>
<li>A:方法的参数是类名public void print(Student s){}//print(new Student());<ul>
<li>如果你看到了一个方法的形式参数是一个类类型(引用类型)，这里其实需要的是该类的对象。</li>
</ul>
</li>
</ul>
<p>###06.12_面向对象(匿名对象的概述和应用)(掌握)</p>
<ul>
<li>A:什么是匿名对象<ul>
<li>没有名字的对象 </li>
</ul>
</li>
<li>B:匿名对象应用场景<ul>
<li>a:调用方法，仅仅只调用一次的时候。<ul>
<li>那么，这种匿名调用有什么好处吗?<ul>
<li>节省代码 </li>
</ul>
</li>
<li>注意：调用多次的时候，不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。</li>
</ul>
</li>
<li>b:匿名对象可以作为实际参数传递</li>
</ul>
</li>
<li>C:案例演示<ul>
<li>匿名对象应用场景</li>
</ul>
</li>
</ul>
<p>###06.13_面向对象(封装的概述)(掌握)</p>
<ul>
<li><p>A:封装概述</p>
<ul>
<li>是指隐藏对象的属性和实现细节，仅对外提供公共访问方式。</li>
</ul>
</li>
<li><p>B:封装好处</p>
<ul>
<li>隐藏实现细节，提供公共的访问方式</li>
<li>提高了代码的复用性</li>
<li>提高安全性。</li>
</ul>
</li>
<li>C:封装原则<ul>
<li>将不需要对外提供的内容都隐藏起来。</li>
<li>把属性隐藏，提供公共方法对其访问。</li>
</ul>
</li>
</ul>
<p>###06.14_面向对象(private关键字的概述和特点)(掌握)</p>
<ul>
<li>A:人类赋值年龄的问题</li>
<li>B:private关键字特点<ul>
<li>a:是一个权限修饰符</li>
<li>b:可以修饰成员变量和成员方法</li>
<li>c:被其修饰的成员只能在本类中被访问</li>
</ul>
</li>
<li>C:案例演示<ul>
<li>封装和private的应用：</li>
<li>A:把成员变量用private修饰</li>
<li>B:提供对应的getXxx()和setXxx()方法</li>
<li>private仅仅是封装的一种体现形式,不能说封装就是私有</li>
</ul>
</li>
</ul>
<p>###06.15_面向对象(this关键字的概述和应用)(掌握)</p>
<ul>
<li>A:this关键字特点<ul>
<li>代表当前对象的引用 </li>
</ul>
</li>
<li>B:案例演示<ul>
<li>this的应用场景</li>
<li>用来区分成员变量和局部变量重名</li>
</ul>
</li>
</ul>
<p>###06.16_面向对象(手机类代码及其测试)(掌握)</p>
<ul>
<li><p>A:学生练习</p>
<ul>
<li><p>请把手机类写成一个标准类，然后创建对象测试功能。</p>
<pre><code>class Demo2_Phone {
    public static void main(String[] args) {
        Phone p1 = new Phone();
        p1.setBrand(&quot;三星&quot;);
        p1.setPrice(5288);

        System.out.println(p1.getBrand() + &quot;...&quot; + p1.getPrice());
        p1.call();
        p1.sendMessage();
        p1.playGame();
    }
}
/*
手机类
    属性:品牌brand,价格price
    行为:打电话call,发短信sendMessage,玩游戏,playGame
*/
class Phone {                                //java bean
    private String brand;                    //品牌
    private int price;                        //价格

    public void setBrand(String brand) {    //设置品牌
        this.brand = brand;
    }

    public String getBrand() {                //获取品牌
        return this.brand;                    //this.可以省略,你不加系统会默认给你加
    }

    public void setPrice(int price) {        //设置价格
        this.price = price;
    }

    public int getPrice() {                    //获取价格
        return price;
    }

    public void call() {                    //打电话
        System.out.println(&quot;打电话&quot;);
    }

    public void sendMessage() {                //发短信
        System.out.println(&quot;发短信&quot;);
    }

    public void playGame() {                //玩游戏
        System.out.println(&quot;玩游戏&quot;);
    }
}
</code></pre></li>
</ul>
</li>
</ul>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://songhangfei.gitee.io/blog/blog/2018/08/20/day07笔记/">

    <span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
      <meta itemprop="name" content="John Doe">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Hexo">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2018/08/20/day07笔记/" itemprop="url">Java面向对象</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2018-08-20T00:00:00+08:00">
                2018-08-20
              </time>
            

            

            
          </span>

          
            <span class="post-category">
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
                  <a href="/blog/categories/Java基础/" itemprop="url" rel="index">
                    <span itemprop="name">Java基础</span>
                  </a>
                </span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>###07.01_面向对象(构造方法Constructor概述和格式)(掌握)</p>
<ul>
<li>A:构造方法概述和作用<ul>
<li>给对象的数据(属性)进行初始化</li>
</ul>
</li>
<li>B:构造方法格式特点<ul>
<li>a:方法名与类名相同(大小也要与类名一致)</li>
<li>b:没有返回值类型，连void都没有</li>
<li>c:没有具体的返回值return;</li>
</ul>
</li>
</ul>
<p>###07.02_面向对象(构造方法的重载及注意事项)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>构造方法的重载</li>
<li>重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表</li>
</ul>
</li>
<li>B:构造方法注意事项<ul>
<li>a:如果我们没有给出构造方法，系统将自动提供一个无参构造方法。</li>
<li>b:如果我们给出了构造方法，系统将不再提供默认的无参构造方法。<ul>
<li>注意：这个时候，如果我们还想使用无参构造方法，就必须自己给出。建议永远自己给出无参构造方法</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###07.03_面向对象(给成员变量赋值的两种方式的区别)</p>
<ul>
<li>A:setXxx()方法<ul>
<li>修改属性值 </li>
</ul>
</li>
<li>B:构造方法<ul>
<li>给对象中属性进行初始化 </li>
</ul>
</li>
</ul>
<p>###07.04_面向对象(学生类的代码及测试)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>学生类：<ul>
<li>成员变量：<ul>
<li>name，age</li>
</ul>
</li>
<li>构造方法：<ul>
<li>无参，带两个参</li>
</ul>
</li>
<li>成员方法：<ul>
<li>getXxx()/setXxx()</li>
<li>show()：输出该类的所有成员变量值</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><p>B:给成员变量赋值：</p>
<ul>
<li>a:setXxx()方法</li>
<li>b:构造方法</li>
</ul>
</li>
<li><p>C:输出成员变量值的方式：</p>
<ul>
<li>a:通过getXxx()分别获取然后拼接</li>
<li>b:通过调用show()方法搞定</li>
</ul>
</li>
</ul>
<p>###07.05_面向对象(手机类的代码及测试)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>模仿学生类，完成手机类代码</li>
</ul>
</li>
</ul>
<p>###07.06_面向对象(创建一个对象的步骤)(掌握)</p>
<ul>
<li>A:画图演示<ul>
<li>画图说明一个对象的创建过程做了哪些事情?</li>
<li>Student s = new Student();</li>
<li>1,Student.class加载进内存</li>
<li>2,声明一个Student类型引用s</li>
<li>3,在堆内存创建对象,</li>
<li>4,给对象中属性默认初始化值</li>
<li>5,属性进行显示初始化</li>
<li>6,构造方法进栈,对对象中的属性赋值,构造方法弹栈</li>
<li>7,将对象的地址值赋值给s</li>
</ul>
</li>
</ul>
<p>###07.07_面向对象(长方形案例练习)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：<ul>
<li>定义一个长方形类,定义 求周长和面积的方法，</li>
<li>然后定义一个测试类进行测试。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###07.08_面向对象(员工类案例练习)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：定义一个员工类Employee</li>
<li>自己分析出几个成员，然后给出成员变量<ul>
<li>姓名name,工号id,工资salary </li>
</ul>
</li>
<li>构造方法，<ul>
<li>空参和有参的</li>
</ul>
</li>
<li>getXxx()setXxx()方法，</li>
<li>以及一个显示所有成员信息的方法。并测试。<ul>
<li>work </li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###07.09_面向对象(static关键字及内存图)(了解)</p>
<ul>
<li><p>A:案例演示</p>
<ul>
<li>通过一个案例引入static关键字。</li>
<li>人类：Person。每个人都有国籍，中国。</li>
</ul>
</li>
<li><p>B:画图演示</p>
<ul>
<li>带有static的内存图</li>
</ul>
</li>
</ul>
<p>###07.10_面向对象(static关键字的特点)(掌握)</p>
<ul>
<li>A:static关键字的特点<ul>
<li>a:随着类的加载而加载</li>
<li>b:优先于对象存在</li>
<li>c:被类的所有对象共享<ul>
<li>举例：咱们班级的学生应该共用同一个班级编号。</li>
<li>其实这个特点也是在告诉我们什么时候使用静态?<ul>
<li>如果某个成员变量是被所有对象共享的，那么它就应该定义为静态的。</li>
</ul>
</li>
<li>举例：<ul>
<li>饮水机(用静态修饰)</li>
<li>水杯(不能用静态修饰)</li>
<li>共性用静态,特性用非静态</li>
</ul>
</li>
</ul>
</li>
<li>d:可以通过类名调用<ul>
<li>其实它本身也可以通过对象名调用。</li>
<li>推荐使用类名调用。</li>
<li>静态修饰的内容一般我们称其为：与类相关的，类成员</li>
</ul>
</li>
</ul>
</li>
<li>B:案例演示<ul>
<li>static关键字的特点</li>
</ul>
</li>
</ul>
<p>###07.11_面向对象(static的注意事项)(掌握)</p>
<ul>
<li>A:static的注意事项<ul>
<li>a:在静态方法中是没有this关键字的<ul>
<li>如何理解呢?<ul>
<li>静态是随着类的加载而加载，this是随着对象的创建而存在。</li>
<li>静态比对象先存在。</li>
</ul>
</li>
</ul>
</li>
<li>b:静态方法只能访问静态的成员变量和静态的成员方法<ul>
<li>静态方法：<ul>
<li>成员变量：只能访问静态变量</li>
<li>成员方法：只能访问静态成员方法</li>
</ul>
</li>
<li>非静态方法：<ul>
<li>成员变量：可以是静态的，也可以是非静态的</li>
<li>成员方法：可是是静态的成员方法，也可以是非静态的成员方法。</li>
</ul>
</li>
<li>简单记：<ul>
<li>静态只能访问静态。</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>B:案例演示<ul>
<li>static的注意事项</li>
</ul>
</li>
</ul>
<p>###07.12_面向对象(静态变量和成员变量的区别)(掌握)</p>
<ul>
<li>静态变量也叫类变量  成员变量也叫对象变量</li>
<li>A:所属不同<ul>
<li>静态变量属于类，所以也称为为类变量</li>
<li>成员变量属于对象，所以也称为实例变量(对象变量)</li>
</ul>
</li>
<li>B:内存中位置不同<ul>
<li>静态变量存储于方法区的静态区</li>
<li>成员变量存储于堆内存</li>
</ul>
</li>
<li>C:内存出现时间不同<ul>
<li>静态变量随着类的加载而加载，随着类的消失而消失</li>
<li>成员变量随着对象的创建而存在，随着对象的消失而消失</li>
</ul>
</li>
<li>D:调用不同<ul>
<li>静态变量可以通过类名调用，也可以通过对象调用</li>
<li>成员变量只能通过对 象名调用</li>
</ul>
</li>
</ul>
<p>###07.13_面向对象(main方法的格式详细解释)(了解)</p>
<ul>
<li>A:格式<ul>
<li>public static void main(String[] args) {}</li>
</ul>
</li>
<li>B:针对格式的解释<ul>
<li>public 被jvm调用，访问权限足够大。</li>
<li>static 被jvm调用，不用创建对象，直接类名访问</li>
<li>void被jvm调用，不需要给jvm返回值</li>
<li>main 一个通用的名称，虽然不是关键字，但是被jvm识别</li>
<li>String[] args 以前用于接收键盘录入的</li>
</ul>
</li>
<li>C:演示案例<ul>
<li>通过args接收键盘例如数据</li>
</ul>
</li>
</ul>
<p>###07.14_面向对象(工具类中使用静态)(了解)</p>
<ul>
<li>A:制作一个工具类<ul>
<li>ArrayTool</li>
<li>1,获取最大值</li>
<li>2,数组的遍历</li>
<li>3,数组的反转</li>
</ul>
</li>
</ul>
<p>###07.15_面向对象(说明书的制作过程)(了解)</p>
<ul>
<li>A:对工具类加入文档注释</li>
<li>B:通过javadoc命令生成说明书<ul>
<li>@author(提取作者内容)</li>
<li>@version(提取版本内容)</li>
<li>javadoc -d 指定的文件目录 -author -version ArrayTool.java</li>
<li>@param 参数名称//形式参数的变量名称@return 函数运行完返回的数据</li>
</ul>
</li>
</ul>
<p>###07.16_面向对象(如何使用JDK提供的帮助文档)(了解)</p>
<ul>
<li>A:找到文档，打开文档</li>
<li>B:点击显示，找到索引，出现输入框</li>
<li>C:你应该知道你找谁?举例：Scanner</li>
<li>D:看这个类的结构(需不需要导包)<ul>
<li>成员变量    字段</li>
<li>构造方法    构造方法</li>
<li>成员方法    方法</li>
</ul>
</li>
</ul>
<p>###07.17_面向对象(学习Math类的随机数功能)(了解)</p>
<ul>
<li>打开JDK提供的帮助文档学习</li>
<li>A:Math类概述<ul>
<li>类包含用于执行基本数学运算的方法</li>
</ul>
</li>
<li>B:Math类特点<ul>
<li>由于Math类在java.lang包下，所以不需要导包。</li>
<li>因为它的成员全部是静态的,所以私有了构造方法</li>
</ul>
</li>
<li>C:获取随机数的方法<ul>
<li>public static double random():返回带正号的 double 值，该值大于等于 0.0 且小于 1.0。</li>
</ul>
</li>
<li>D:我要获取一个1-100之间的随机数，肿么办?<ul>
<li>int number = (int)(Math.random()*100)+1;</li>
</ul>
</li>
</ul>
<p>###07.18_面向对象(猜数字小游戏案例)(了解)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：猜数字小游戏(数据在1-100之间)</li>
</ul>
</li>
</ul>
<p>###07.19_day07总结<br>把今天的知识点总结一遍。</p>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://songhangfei.gitee.io/blog/blog/2018/08/20/day04笔记/">

    <span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
      <meta itemprop="name" content="John Doe">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Hexo">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2018/08/20/day04笔记/" itemprop="url">Java运算符</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2018-08-20T00:00:00+08:00">
                2018-08-20
              </time>
            

            

            
          </span>

          
            <span class="post-category">
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
                  <a href="/blog/categories/Java基础/" itemprop="url" rel="index">
                    <span itemprop="name">Java基础</span>
                  </a>
                </span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>###04.01_Java语言基础(循环结构概述和for语句的格式及其使用)</p>
<ul>
<li>A:循环结构的分类<ul>
<li>for,while,do…while </li>
</ul>
</li>
<li>B:循环结构for语句的格式：</li>
<li><pre><code>for(初始化表达式;条件表达式;循环后的操作表达式) {
    循环体;
}
</code></pre></li>
<li>C执行流程：<ul>
<li>a:执行初始化语句</li>
<li>b:执行判断条件语句,看其返回值是true还是false<ul>
<li>如果是true，就继续执行</li>
<li>如果是false，就结束循环</li>
</ul>
</li>
<li>c:执行循环体语句;</li>
<li>d:执行循环后的操作表达式</li>
<li>e:回到B继续。</li>
</ul>
</li>
<li>D:案例演示<ul>
<li>在控制台输出10次”helloworld”</li>
</ul>
</li>
</ul>
<p>###04.02_Java语言基础(循环结构for语句的练习之获取数据)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：请在控制台输出数据1-10</li>
<li>需求：请在控制台输出数据10-1</li>
</ul>
</li>
<li>B:注意事项<ul>
<li>a:判断条件语句无论简单还是复杂结果是boolean类型。</li>
<li>b:循环体语句如果是一条语句，大括号可以省略；如果是多条语句，大括号不能省略。建议永远不要省略。</li>
<li>c:一般来说：有左大括号就没有分号，有分号就没有左大括号</li>
</ul>
</li>
</ul>
<p>###04.03_Java语言基础(循环结构for语句的练习之求和思想)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：求出1-10之间数据之和</li>
</ul>
</li>
<li>B:学生练习<ul>
<li>需求：求出1-100之间偶数和</li>
<li>需求：求出1-100之间奇数和</li>
</ul>
</li>
</ul>
<p>###04.04_Java语言基础(循环结构for语句的练习之水仙花)</p>
<ul>
<li><p>A:案例演示</p>
<ul>
<li><p>需求：在控制台输出所有的”水仙花数”</p>
</li>
<li><p>所谓的水仙花数是指一个三位数，其各位数字的立方和等于该数本身。</p>
</li>
<li>举例：153就是一个水仙花数。</li>
<li>153 = 1<em>1</em>1 + 5<em>5</em>5 + 3<em>3</em>3 = 1 + 125 + 27 = 153</li>
</ul>
</li>
</ul>
<p>###04.05_Java语言基础(循环结构for语句的练习之统计思想)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：统计”水仙花数”共有多少个</li>
</ul>
</li>
</ul>
<p>###04.06_Java语言基础(循环结构while语句的格式和基本使用)</p>
<ul>
<li>A:循环结构while语句的格式：</li>
<li><p>while循环的基本格式：<br>while(判断条件语句) {<br>  循环体语句;<br>}</p>
<p>完整格式：</p>
<p>初始化语句;<br>while(判断条件语句) {<br>   循环体语句;<br>   控制条件语句;<br>}</p>
</li>
<li>B:执行流程：<ul>
<li>a:执行初始化语句</li>
<li>b:执行判断条件语句,看其返回值是true还是false<ul>
<li>如果是true，就继续执行</li>
<li>如果是false，就结束循环</li>
</ul>
</li>
<li>c:执行循环体语句;</li>
<li>d:执行控制条件语句</li>
<li>e:回到B继续。</li>
</ul>
</li>
<li>C:案例演示<ul>
<li>需求：请在控制台输出数据1-10</li>
</ul>
</li>
</ul>
<p>###04.07_Java语言基础(循环结构while语句的练习)</p>
<ul>
<li>A:求和思想<ul>
<li>求1-100之和</li>
</ul>
</li>
<li>B:统计思想<ul>
<li>统计”水仙花数”共有多少个</li>
</ul>
</li>
</ul>
<p>###04.08_Java语言基础(循环结构do…while语句的格式和基本使用)</p>
<ul>
<li>A:循环结构do…while语句的格式：</li>
<li><pre><code>do {
    循环体语句;
}while(判断条件语句);

完整格式；
初始化语句;
do {
    循环体语句;
    控制条件语句;
}while(判断条件语句);
</code></pre></li>
<li>B:执行流程：<ul>
<li>a:执行初始化语句</li>
<li>b:执行循环体语句;</li>
<li>c:执行控制条件语句</li>
<li>d:执行判断条件语句,看其返回值是true还是false<ul>
<li>如果是true，就继续执行</li>
<li>如果是false，就结束循环</li>
</ul>
</li>
<li>e:回到b继续。</li>
</ul>
</li>
<li>C:案例演示<ul>
<li>需求：请在控制台输出数据1-10</li>
</ul>
</li>
</ul>
<p>###04.09_Java语言基础(循环结构三种循环语句的区别)</p>
<ul>
<li>A:案例演示<ul>
<li>三种循环语句的区别:</li>
<li>do…while循环至少执行一次循环体。</li>
<li>而for,while循环必须先判断条件是否成立，然后决定是否执行循环体语句。</li>
</ul>
</li>
<li>B:案例演示<ul>
<li>for循环和while循环的区别：<ul>
<li>A:如果你想在循环结束后，继续使用控制条件的那个变量，用while循环，否则用for循环。不知道用谁就用for循环。因为变量及早的从内存中消失，可以提高内存的使用效率。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###04.10_Java语言基础(循环结构注意事项之死循环)</p>
<ul>
<li>A:一定要注意控制条件语句控制的那个变量的问题，不要弄丢了，否则就容易死循环。</li>
<li>B:两种最简单的死循环格式<ul>
<li>while(true){…}</li>
<li>for(;;){…}</li>
</ul>
</li>
</ul>
<p>###04.11_Java语言基础(循环结构循环嵌套输出4行5列的星星)</p>
<ul>
<li><p>A:案例演示</p>
<ul>
<li>需求：请输出一个4行5列的星星(*)图案。</li>
<li><pre><code>如图：
    *****
    *****
    *****
    *****

注意：
    System.out.println(&quot;*&quot;);和System.out.print(&quot;*&quot;);的区别
</code></pre></li>
</ul>
</li>
<li>B:结论：<ul>
<li>外循环控制行数，内循环控制列数</li>
</ul>
</li>
</ul>
<p>###04.12_Java语言基础(循环结构循环嵌套输出正三角形)</p>
<ul>
<li>A:案例演示</li>
<li><pre><code>需求：请输出下列的形状
*
**
***
****
*****
</code></pre></li>
</ul>
<p>###04.13_Java语言基础(循环结构九九乘法表)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：在控制台输出九九乘法表。</li>
</ul>
</li>
<li>B:代码优化</li>
<li><pre><code>注意：
&apos;\x&apos; x表示任意，\是转义符号,这种做法叫转移字符。

&apos;\t&apos;    tab键的位置
&apos;\r&apos;    回车
&apos;\n&apos;    换行
&apos;\&quot;&apos;
&apos;\&apos;&apos;
</code></pre></li>
</ul>
<p>###04.14_Java语言基础(控制跳转语句break语句)</p>
<ul>
<li>A:break的使用场景<ul>
<li>只能在switch和循环中 </li>
</ul>
</li>
</ul>
<p>###04.15_Java语言基础(控制跳转语句continue语句)</p>
<ul>
<li>A:continue的使用场景<ul>
<li>只能在循环中 </li>
</ul>
</li>
</ul>
<p>###04.16_Java语言基础(控制跳转语句标号)</p>
<ul>
<li>标号:标记某个循环对其控制</li>
<li>标号组成规则:其实就是合法的标识符</li>
</ul>
<p>###04.17_Java语言基础(控制调整语句练习)</p>
<ul>
<li>A:练习题</li>
<li><pre><code>for(int x=1; x&lt;=10; x++) {
    if(x%3==0) {
        //在此处填写代码
    }
    System.out.println(“Java基础班”);
}

我想在控制台输出2次:“Java基础班“
我想在控制台输出7次:“Java基础班“
我想在控制台输出13次:“Java基础班“    
</code></pre></li>
</ul>
<p>###04.18_Java语言基础(控制跳转语句return语句)</p>
<ul>
<li>A:return的作用<ul>
<li>返回</li>
<li>其实它的作用不是结束循环的，而是结束方法的。</li>
</ul>
</li>
<li>B:案例演示<ul>
<li>return和break以及continue的区别?</li>
<li>return是结束方法</li>
<li>break是跳出循环</li>
<li>continue是终止本次循环继续下次循环</li>
</ul>
</li>
</ul>
<p>###04.19_Java语言基础(方法概述和格式说明)</p>
<ul>
<li>A:为什么要有方法<ul>
<li>提高代码的复用性 </li>
</ul>
</li>
<li>B:什么是方法<ul>
<li>完成特定功能的代码块。 </li>
</ul>
</li>
<li>C:方法的格式</li>
<li><pre><code>修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
    方法体语句;
    return 返回值; 
} 
</code></pre></li>
<li>D:方法的格式说明<ul>
<li>修饰符：目前就用 public static。后面我们再详细的讲解其他的修饰符。</li>
<li>返回值类型：就是功能结果的数据类型。</li>
<li>方法名：符合命名规则即可。方便我们的调用。</li>
<li>参数：<ul>
<li>实际参数：就是实际参与运算的。</li>
<li>形式参数；就是方法定义上的，用于接收实际参数的。</li>
</ul>
</li>
<li>参数类型：就是参数的数据类型</li>
<li>参数名：就是变量名</li>
<li>方法体语句：就是完成功能的代码。</li>
<li>return：结束方法的。</li>
<li>返回值：就是功能的结果，由return带给调用者。 </li>
</ul>
</li>
</ul>
<p>###04.20_Java语言基础(方法之求和案例及其调用)</p>
<ul>
<li>A:如何写一个方法<ul>
<li>1,明确返回值类型</li>
<li>2,明确参数列表 </li>
</ul>
</li>
<li>B:案例演示<ul>
<li>需求：求两个数据之和的案例</li>
</ul>
</li>
<li>C:方法调用图解</li>
</ul>
<p>###04.21_Java语言基础(方法的注意事项)</p>
<ul>
<li>A:方法调用(有具体返回值)<ul>
<li>a:单独调用,一般来说没有意义，所以不推荐。</li>
<li>b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。</li>
<li>c:赋值调用,推荐方案。</li>
</ul>
</li>
<li>B:案例演示<ul>
<li>a:方法不调用不执行</li>
<li>b:方法与方法是平级关系，不能嵌套定义</li>
<li>c:方法定义的时候参数之间用逗号隔开</li>
<li>d:方法调用的时候不用在传递数据类型</li>
<li>e:如果方法有明确的返回值，一定要有return带回一个值</li>
</ul>
</li>
</ul>
<p>###04.22_Java语言基础(方法的练习)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：键盘录入两个数据，返回两个数中的较大值</li>
</ul>
</li>
<li>B:案例演示<ul>
<li>需求：键盘录入两个数据，比较两个数是否相等     </li>
</ul>
</li>
</ul>
<p>###04.23_Java语言基础(方法之输出星形及其调用)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：根据键盘录入的行数和列数，在控制台输出星形</li>
</ul>
</li>
<li>B:方法调用：(无返回值,void)<ul>
<li>单独调用</li>
<li>输出调用(错误)</li>
<li>赋值调用(错误)</li>
</ul>
</li>
</ul>
<p>###04.24_Java语言基础(方法的练习)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：根据键盘录入的数据输出对应的乘法表</li>
</ul>
</li>
</ul>
<p>###04.25_Java语言基础(方法重载概述和基本使用)</p>
<ul>
<li>A:方法重载概述<ul>
<li>求和案例<ul>
<li>2个整数</li>
<li>3个整数</li>
<li>4个整数</li>
</ul>
</li>
</ul>
</li>
<li><p>B:方法重载：</p>
<ul>
<li><p>在同一个类中，方法名相同，参数列表不同。与返回值类型无关。</p>
</li>
<li><p>参数列表不同：</p>
<ul>
<li>A:参数个数不同</li>
<li>B:参数类型不同</li>
<li>C:参数的顺序不同(算重载,但是在开发中不用)</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###04.26_Java语言基础(方法重载练习比较数据是否相等)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：比较两个数据是否相等。</li>
<li>参数类型分别为两个int类型，两个double类型，并在main方法中进行测试</li>
</ul>
</li>
</ul>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://songhangfei.gitee.io/blog/blog/2018/08/19/day03笔记/">

    <span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
      <meta itemprop="name" content="John Doe">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Hexo">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2018/08/19/day03笔记/" itemprop="url">Java运算符</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2018-08-19T00:00:00+08:00">
                2018-08-19
              </time>
            

            

            
          </span>

          
            <span class="post-category">
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
                  <a href="/blog/categories/Java基础/" itemprop="url" rel="index">
                    <span itemprop="name">Java基础</span>
                  </a>
                </span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>###03.01_Java语言基础(逻辑运算符的基本用法)(掌握)</p>
<ul>
<li>A:逻辑运算符有哪些<ul>
<li>&amp;,|,^,!</li>
<li>&amp;&amp;,|| </li>
</ul>
</li>
<li>B:案例演示</li>
<li><p>逻辑运算符的基本用法</p>
</li>
<li><p>注意事项：</p>
<ul>
<li>a:逻辑运算符一般用于连接boolean类型的表达式或者值。</li>
<li>b:表达式：就是用运算符把常量或者变量连接起来的符合java语法的式子。<ul>
<li>算术表达式：a + b</li>
<li>比较表达式：a == b(条件表达式)</li>
</ul>
</li>
</ul>
</li>
<li>C:结论：</li>
<li>&amp;逻辑与:有false则false。</li>
<li>|逻辑或:有true则true。</li>
<li>^逻辑异或:相同为false，不同为true。</li>
<li>!逻辑非:非false则true，非true则false。<ul>
<li>特点：偶数个不改变本身。</li>
</ul>
</li>
</ul>
<p>###03.02_Java语言基础(逻辑运算符&amp;&amp;和&amp;的区别)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>&amp;&amp;和&amp;的区别?<ul>
<li>a:最终结果一样。</li>
<li>b:&amp;&amp;具有短路效果。左边是false，右边不执行。</li>
<li>&amp;是无论左边是false还是true,右边都会执行</li>
</ul>
</li>
</ul>
</li>
<li>B:同理||和|的区别?(学生自学)</li>
<li>C:开发中常用谁?<ul>
<li>&amp;&amp;,||,!</li>
</ul>
</li>
</ul>
<p>###03.03_Java语言基础(位运算符的基本用法1)(了解)</p>
<ul>
<li>A:位运算符有哪些<ul>
<li>&amp;,|,^,~ ,&gt;&gt;,&gt;&gt;&gt;,&lt;&lt;</li>
</ul>
</li>
<li><p>B:案例演示</p>
<ul>
<li><p>位运算符的基本用法1</p>
</li>
<li><p>&amp;,|,^,~ 的用法</p>
</li>
<li>&amp;:有0则0</li>
<li>|:有1则1</li>
<li>^:相同则0，不同则1</li>
<li>~:按位取反</li>
</ul>
</li>
</ul>
<p>###03.04_Java语言基础(位异或运算符的特点及面试题)(掌握)</p>
<ul>
<li><p>A:案例演示</p>
<ul>
<li><p>位异或运算符的特点</p>
</li>
<li><p>^的特点：一个数据对另一个数据位异或两次，该数本身不变。</p>
</li>
</ul>
</li>
<li><p>B:面试题：</p>
<ul>
<li>请自己实现两个整数变量的交换</li>
<li>注意：以后讲课的过程中，我没有明确指定数据的类型，默认int类型。</li>
</ul>
</li>
</ul>
<p>###03.05_Java语言基础(位运算符的基本用法2及面试题)(了解)</p>
<ul>
<li>A:案例演示 &gt;&gt;,&gt;&gt;&gt;,&lt;&lt;的用法:<ul>
<li>“&lt;&lt;”:左移    左边最高位丢弃，右边补齐0</li>
<li>“&gt;&gt;”:右移    最高位是0，左边补齐0;最高为是1，左边补齐1</li>
<li>“&gt;&gt;&gt;”:无符号右移 无论最高位是0还是1，左边补齐0</li>
<li>最有效率的算出2 * 8的结果</li>
</ul>
</li>
</ul>
<p>###03.06_Java语言基础(三元运算符的基本用法)(掌握)</p>
<ul>
<li>A:三元运算符的格式</li>
<li>(关系表达式) ? 表达式1 : 表达式2;</li>
<li>B:三元运算符的执行流程 </li>
<li>C:案例演示<ul>
<li>获取两个数中的最大值</li>
</ul>
</li>
</ul>
<p>###03.07_Java语言基础(三元运算符的练习)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>比较两个整数是否相同</li>
</ul>
</li>
<li>B:案例演示<ul>
<li>获取三个整数中的最大值</li>
</ul>
</li>
</ul>
<p>###03.08_Java语言基础(键盘录入的基本格式讲解)(掌握)</p>
<ul>
<li>A:为什么要使用键盘录入数据<ul>
<li>a:为了让程序的数据更符合开发的数据</li>
<li>b:让程序更灵活一下</li>
</ul>
</li>
<li>B:如何实现键盘录入呢?<ul>
<li>先照格式来。</li>
<li>a:导包<ul>
<li>格式：<ul>
<li>import java.util.Scanner; </li>
</ul>
</li>
<li>位置：<ul>
<li>在class上面。</li>
</ul>
</li>
</ul>
</li>
<li>b:创建键盘录入对象<ul>
<li>格式：<ul>
<li>Scanner sc = new Scanner(System.in);</li>
</ul>
</li>
</ul>
</li>
<li>c:通过对象获取数据    <ul>
<li>格式：<ul>
<li>int x = sc.nextInt();</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>C:案例演示<ul>
<li>键盘录入1个整数，并输出到控制台。</li>
<li>键盘录入2个整数，并输出到控制台。</li>
</ul>
</li>
</ul>
<p>###03.09_Java语言基础(键盘录入的练习1)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>键盘录入练习：键盘录入两个数据，并对这两个数据求和，输出其结果</li>
</ul>
</li>
<li>B:案例演示<ul>
<li>键盘录入练习：键盘录入两个数据，获取这两个数据中的最大值</li>
</ul>
</li>
</ul>
<p>###03.10_Java语言基础(键盘录入的练习2)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>键盘录入练习：键盘录入两个数据，比较这两个数据是否相等</li>
</ul>
</li>
<li>B:案例演示<ul>
<li>键盘录入练习：键盘录入三个数据，获取这三个数据中的最大值</li>
</ul>
</li>
</ul>
<p>###03.11_Java语言基础(顺序结构语句)(了解)</p>
<ul>
<li>A:什么是流程控制语句<ul>
<li>流程控制语句：可以控制程序的执行流程。</li>
</ul>
</li>
<li>B:流程控制语句的分类<ul>
<li>顺序结构</li>
<li>选择结构</li>
<li>循环结构</li>
</ul>
</li>
<li>C:执行流程：<ul>
<li>从上往下，依次执行。</li>
</ul>
</li>
<li>D:案例演示<ul>
<li>输出几句话看效果即可</li>
</ul>
</li>
</ul>
<p>###03.12_Java语言基础(选择结构if语句格式1及其使用)(掌握)</p>
<ul>
<li>A:选择结构的分类<ul>
<li>if语句</li>
<li>switch语句</li>
</ul>
</li>
<li>B:if语句有几种格式<ul>
<li>格式1</li>
<li>格式2</li>
<li>格式3</li>
</ul>
</li>
<li>C:if语句的格式1</li>
<li><pre><code>if(比较表达式) {
    语句体;
}
</code></pre></li>
<li>D:执行流程：<ul>
<li>先计算比较表达式的值，看其返回值是true还是false。</li>
<li>如果是true，就执行语句体；</li>
<li>如果是false，就不执行语句体；</li>
</ul>
</li>
</ul>
<p>###03.13_Java语言基础(选择结构if语句注意事项)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>a:比较表达式无论简单还是复杂，结果必须是boolean类型</li>
<li>b:if语句控制的语句体如果是一条语句，大括号可以省略；<ul>
<li>如果是多条语句，就不能省略。建议永远不要省略。</li>
</ul>
</li>
<li>c:一般来说：有左大括号就没有分号，有分号就没有左大括号</li>
</ul>
</li>
</ul>
<p>###03.14_Java语言基础(选择结构if语句格式2及其使用)(掌握)</p>
<ul>
<li>A:if语句的格式2</li>
<li><pre><code>if(比较表达式) {
    语句体1;
}else {
    语句体2;
}
</code></pre></li>
<li>B:执行流程：<ul>
<li>首先计算比较表达式的值，看其返回值是true还是false。</li>
<li>如果是true，就执行语句体1；</li>
<li>如果是false，就执行语句体2；</li>
</ul>
</li>
<li><p>C:案例演示</p>
<ul>
<li>a:获取两个数据中较大的值</li>
<li><p>b:判断一个数据是奇数还是偶数,并输出是奇数还是偶数</p>
</li>
<li><p>注意事项：else后面是没有比较表达式的，只有if后面有。</p>
</li>
</ul>
</li>
</ul>
<p>###03.15_Java语言基础(if语句的格式2和三元的相互转换问题)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>if语句和三元运算符完成同一个效果</li>
</ul>
</li>
<li><p>B:案例演示</p>
<ul>
<li><p>if语句和三元运算符的区别</p>
</li>
<li><p>三元运算符实现的，都可以采用if语句实现。反之不成立。</p>
</li>
<li><p>什么时候if语句实现不能用三元改进呢?</p>
<ul>
<li>当if语句控制的操作是一个输出语句的时候就不能。</li>
<li>为什么呢?因为三元运算符是一个运算符，运算符操作完毕就应该有一个结果，而不是一个输出。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###03.16_Java语言基础(选择结构if语句格式3及其使用)(掌握)</p>
<ul>
<li>A:if语句的格式3：</li>
<li><pre><code>if(比较表达式1) {
    语句体1;
}else if(比较表达式2) {
    语句体2;
}else if(比较表达式3) {
    语句体3;
}
...
else {
    语句体n+1;
}
</code></pre></li>
<li><p>B:执行流程：</p>
<ul>
<li>首先计算比较表达式1看其返回值是true还是false，</li>
<li>如果是true，就执行语句体1，if语句结束。</li>
<li><p>如果是false，接着计算比较表达式2看其返回值是true还是false，</p>
</li>
<li><p>如果是true，就执行语句体2，if语句结束。</p>
</li>
<li><p>如果是false，接着计算比较表达式3看其返回值是true还是false，</p>
</li>
<li><p>如果都是false，就执行语句体n+1。</p>
</li>
</ul>
</li>
<li>C:注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示 </li>
</ul>
<p>###03.17_Java语言基础(选择结构if语句格式3练习)(掌握)</p>
<ul>
<li>A:练习1</li>
<li><pre><code>需求：键盘录入一个成绩，判断并输出成绩的等级。
90-100 优
80-89  良
70-79  中
60-69  及
0-59   差
</code></pre></li>
<li><p>B:练习2</p>
<ul>
<li><p>需求：</p>
<ul>
<li><p>键盘录入x的值，计算出y的并输出。</p>
</li>
<li><p>x&gt;=3    y = 2 * x + 1;</p>
</li>
<li>-1&lt;x&lt;3    y = 2 * x;</li>
<li>x&lt;=-1    y = 2 * x - 1;</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###03.18_Java语言基础(选择结构if语句的嵌套使用)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>需求：获取三个数据中的最大值</li>
<li>if语句的嵌套使用。</li>
</ul>
</li>
</ul>
<p>###03.19_Java语言基础(选择结构switch语句的格式及其解释)(掌握)</p>
<ul>
<li>A:switch语句的格式</li>
<li><pre><code>switch(表达式) {
      case 值1：
        语句体1;
        break;
        case 值2：
        语句体2;
        break;
        …
        default：    
        语句体n+1;
        break;
}
</code></pre></li>
<li><p>B:switch语句的格式解释</p>
</li>
<li>C:面试题<ul>
<li>byte可以作为switch的表达式吗?</li>
<li>long可以作为switch的表达式吗?</li>
<li>String可以作为switch的表达式吗?</li>
</ul>
</li>
<li>C:执行流程<ul>
<li>先计算表达式的值</li>
<li>然后和case后面的匹配，如果有就执行对应的语句，否则执行default控制的语句</li>
</ul>
</li>
</ul>
<p>###03.20_Java语言基础(选择结构switch语句的练习)(掌握)</p>
<ul>
<li>A:整数(给定一个值,输出对应星期几)</li>
</ul>
<p>###03.21_Java语言基础(选择结构switch语句的注意事项)(掌握)</p>
<ul>
<li>A:案例演示<ul>
<li>a:case后面只能是常量，不能是变量，而且，多个case后面的值不能出现相同的</li>
<li>b:default可以省略吗?<ul>
<li>可以省略，但是不建议，因为它的作用是对不正确的情况给出提示。</li>
<li>特殊情况：<ul>
<li>case就可以把值固定。</li>
<li>A,B,C,D</li>
</ul>
</li>
</ul>
</li>
<li>c:break可以省略吗?<ul>
<li>最后一个可以省略,其他最好不要省略</li>
<li>会出现一个现象：case穿透。</li>
<li>最终我们建议不要省略</li>
</ul>
</li>
<li>d:default一定要在最后吗?<ul>
<li>不是，可以在任意位置。但是建议在最后。</li>
</ul>
</li>
<li>e:switch语句的结束条件<ul>
<li>a:遇到break就结束了</li>
<li>b:执行到switch的右大括号就结束了</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###03.22_Java语言基础(选择结构switch语句练习)(掌握)</p>
<ul>
<li>A:看程序写结果：</li>
<li><pre><code>int x = 2;
int y = 3;
switch(x){
    default:
        y++;
        break;
    case 3:
        y++;
    case 4:
        y++;
}
System.out.println(&quot;y=&quot;+y);
</code></pre></li>
<li><p>B:看程序写结果：</p>
</li>
<li><pre><code>int x = 2;
int y = 3;
switch(x){
    default:
        y++;
    case 3:
        y++;
    case 4:
        y++;
}
System.out.println(&quot;y=&quot;+y);
</code></pre></li>
</ul>
<p>###03.23_Java语言基础(选择结构if语句和switch语句的区别)(掌握)</p>
<ul>
<li>A:总结switch语句和if语句的各自使用场景</li>
<li>switch建议判断固定值的时候用</li>
<li>if建议判断区间或范围的时候用</li>
<li>B:案例演示<ul>
<li>分别用switch语句和if语句实现下列需求：<ul>
<li>键盘录入月份，输出对应的季节</li>
</ul>
</li>
</ul>
</li>
</ul>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://songhangfei.gitee.io/blog/blog/2018/08/18/day01笔记/">

    <span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
      <meta itemprop="name" content="John Doe">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Hexo">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2018/08/18/day01笔记/" itemprop="url">Java语言基础</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2018-08-18T00:00:00+08:00">
                2018-08-18
              </time>
            

            

            
          </span>

          
            <span class="post-category">
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
                  <a href="/blog/categories/Java基础/" itemprop="url" rel="index">
                    <span itemprop="name">Java基础</span>
                  </a>
                </span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>###01.01_计算机基础知识(计算机概述)(了解)</p>
<ul>
<li>A:什么是计算机?计算机在生活中的应用举例<ul>
<li>计算机（Computer）全称：电子计算机，俗称电脑。是一种能够按照程序运行，自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成，没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、笔记本计算机、大型计算机等。</li>
<li>应用举例<ul>
<li>1：科学计算</li>
<li>2、数据处理</li>
<li>3、自动控制</li>
<li>4、计算机辅助设计</li>
<li>5、人工智能</li>
<li>6、多媒体应用</li>
<li>7、计算机网络</li>
<li>… </li>
</ul>
</li>
</ul>
</li>
<li><p>B:什么是硬件?硬件举例</p>
<ul>
<li>计算机硬件（Computer Hardware）是指计算机系统中由电子，机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。</li>
<li>冯.诺依曼体系结构</li>
<li><p>计算机的硬件分成5大组成部件：运算器、控制器、存储器、输入设备和输出设备。</p>
<ul>
<li>运算器和控制器是计算机的核心，合称中央处理单元（Central Processing Unit，CPU）或处理器。CPU的内部还有一些高速存储单元，被称为寄存器。其中运算器执行所有的算术和逻辑运算；控制器负责把指令逐条从存储器中取出，经译码后向计算机发出各种控制命令；而寄存器为处理单元提供操作所需要的数据。</li>
<li>存储器是计算机的记忆部分，用来存放程序以及程序中涉及的数据。它分为内部存储器和外部存储器。内部存储器用于存放正在执行的程序和使用的数据，其成本高、容量小，但速度快。外部存储器可用于长期保存大量程序和数据，其成本低、容量大，但速度较慢。</li>
<li>输入设备和输出设备统称为外部设备，简称外设或I/O设备，用来实现人机交互和机间通信。微型机中常用的输入设备有键盘、鼠标等，输出设备有显示器、打印机等。</li>
</ul>
</li>
</ul>
</li>
<li>C:什么是软件?软件分类及举例<ul>
<li>计算机软件(Computer Software)是使用计算机过程中必不可少的东西，计算机软件可以使计算机按照事先预定好的顺序完成特定的功能</li>
<li>计算机软件按照其功能划分为系统软件与应用软件<ul>
<li>系统软件： DOS(Disk Operating System), Windows, Linux, Unix, Mac, Android, iOS</li>
<li>应用软件：office  QQ聊天  YY语言  扫雷<br>###01.02_计算机基础知识(软件开发和计算机语言概述)(了解)</li>
</ul>
</li>
</ul>
</li>
<li>A:什么是软件<ul>
<li>按照特定顺序组织的计算机数据和指令的集合</li>
</ul>
</li>
<li>B:什么是开发<ul>
<li>软件的制作过程</li>
</ul>
</li>
<li>C:什么是软件开发<ul>
<li>借助开发工具与计算机语言制作软件 </li>
</ul>
</li>
<li>D:什么是计算机语言<ul>
<li>人与计算机之间进行信息交流沟通的一种特殊语言</li>
</ul>
</li>
<li>E:计算机语言的分类<ul>
<li>机器语言：<ul>
<li>机器语言是直接用二进制代码指令表达的计算机语言，指令是用0和1组成的一串代码，它们有一定的位数，并分成若干段，各段的编码表示不同的含义。</li>
</ul>
</li>
<li>汇编语言：<ul>
<li>汇编语言是使用一些特殊的符号来代替机器语言的二进制码，计算机不能直接识别，需要用一种软件将汇编语言翻译成机器语言。</li>
</ul>
</li>
<li>高级语言：  <ul>
<li>使用普通英语进行编写源代码，通过编译器将源代码翻译成计算机直接识别的机器语言，之后再由计算机执行。</li>
<li>高级语言包括C,C++,C#,JAVA<br>###01.03_计算机基础知识(人机交互)(了解)</li>
</ul>
</li>
</ul>
</li>
<li>A:人机交互的两种方式<ul>
<li>a:命令行方式 <ul>
<li>需要有一个控制台，输入特定的指令，让计算机完成一些操作。较为麻烦，需要记录住一些命令。 </li>
</ul>
</li>
<li>b:图形化界面方式<ul>
<li>这种方式简单直观，使用者易于接受，容易上手操作。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>###01.04_计算机基础知识(键盘功能键和快捷键)(掌握)</p>
<ul>
<li>A:键盘功能键<ul>
<li>a:Tab</li>
<li>b:Shift</li>
<li>c:Ctrl</li>
<li>d:Alt</li>
<li>e:空格    </li>
<li>f:Enter</li>
<li>g:Window</li>
<li>h:上下左右键</li>
<li>i:PrtSc(PrintScreen)屏幕截图</li>
</ul>
</li>
<li>B:键盘快捷键<ul>
<li>a:Ctrl+A    全选</li>
<li>b:Ctrl+C    复制</li>
<li>c:Ctrl+V    粘贴</li>
<li>d:Ctrl+X    剪切</li>
<li>e:Ctrl+Z    撤销</li>
<li>f:Ctrl+S    保存</li>
</ul>
</li>
</ul>
<p>###01.05_计算机基础知识(如何打开DOS控制台)(掌握)</p>
<ul>
<li>A:xp下如何打开DOS控制台？<ul>
<li>a:开始–程序–附件–命令提示符</li>
<li>b:开始–运行–cmd–回车</li>
<li>c:win+r–cmd–回车</li>
</ul>
</li>
<li>B:win7下如何打开DOS控制台？<ul>
<li>a:开始–所有程序–附件–命令提示符</li>
<li>b:开始–搜索程序和文件–cmd–回车</li>
<li>c:win+r–cmd–回车</li>
</ul>
</li>
<li>C:win8下如何打开DOS控制台<ul>
<li>a:鼠标左击开始–下箭头–命令提示符</li>
<li>b:鼠标右击开始–搜索–cmd–回车</li>
<li>c:鼠标右击开始–运行–cmd–回车</li>
<li>d:win+r–cmd–回车</li>
</ul>
</li>
</ul>
<p>###01.06_计算机基础知识(常见的DOS命令讲解)</p>
<ul>
<li>A:d: 回车    盘符切换</li>
<li>B:dir(directory):列出当前目录下的文件以及文件夹</li>
<li>C:cd (change directory)改变指定目录(进入指定目录)</li>
<li>D:cd.. : 退回到上一级目录</li>
<li>E:cd\: 退回到根目录</li>
<li>F:cls : (clear screen)清屏</li>
<li>G:exit : 退出dos命令行(分割线上的需要掌握,下的了解)</li>
<li>/=========================================================</li>
<li>md (make directory) : 创建目录</li>
<li>rd (remove directory): 删除目录</li>
<li>del (delete): 删除文件,删除一堆后缀名一样的文件*.txt</li>
<li>notepad 创建文件</li>
<li>删除带内容的文件夹<ul>
<li>rd + /s    文件夹名称(询问是否删除)</li>
<li>rd + /q + /s 文件夹名称(直接删除)</li>
</ul>
</li>
</ul>
<p>###01.07_Java语言基础(Java语言概述)(了解)</p>
<ul>
<li>A:Java语言发展史<ul>
<li>詹姆斯·高斯林（James Gosling）1977年获得了加拿大卡尔加里大学计算机科学学士学位，1983年获得了美国卡内基梅隆大学计算机科学博士学位，毕业后到IBM工作，设计IBM第一代工作站NeWS系统，但不受重视。后来转至Sun公司，1990年，与Patrick，Naughton和Mike Sheridan等人合作“绿色计划”，后来发展一套语言叫做“Oak”，后改名为Java。</li>
<li>SUN(Stanford University Network，斯坦福大学网络公司) </li>
</ul>
</li>
<li>B:Java语言版本<ul>
<li>JDK 1.1.4        Sparkler    宝石                1997-09-12</li>
<li>JDK 1.1.5        Pumpkin        南瓜                1997-12-13</li>
<li>JDK 1.1.6        Abigail        阿比盖尔–女子名        1998-04-24</li>
<li>JDK 1.1.7        Brutus        布鲁图–古罗马政治家和将军    1998-09-28</li>
<li>JDK 1.1.8        Chelsea        切尔西–城市名            1999-04-08</li>
<li>J2SE 1.2        Playground    运动场                1998-12-04</li>
<li>J2SE 1.2.1        none        无                1999-03-30</li>
<li>J2SE 1.2.2        Cricket        蟋蟀                1999-07-08</li>
<li>J2SE 1.3        Kestrel        美洲红隼(sǔn)            2000-05-08</li>
<li>J2SE 1.3.1        Ladybird    瓢虫                2001-05-17</li>
<li>J2SE 1.4.0        Merlin        灰背隼                2002-02-13</li>
<li>J2SE 1.4.1        grasshopper    蚱蜢                2002-09-16</li>
<li>J2SE 1.4.2        Mantis        螳螂                2003-06-26</li>
<li>JAVASE 5.0 (1.5.0)    Tiger        老虎    </li>
<li>JAVASE 5.1 (1.5.1)    Dragonfly    蜻蜓    </li>
<li>JAVASE 6.0 (1.6.0)    Mustang        野马</li>
<li>JAVASE 7.0 (1.7.0)    Dolphin        海豚</li>
</ul>
</li>
<li>C:Java语言平台<ul>
<li>J2SE(Java 2 Platform Standard Edition)标准版<ul>
<li>是为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础，可以完成一些桌面应用程序的开发</li>
</ul>
</li>
<li>J2ME(Java 2 Platform Micro Edition)小型版<ul>
<li>是为开发电子消费产品和嵌入式设备提供的解决方案</li>
</ul>
</li>
<li>J2EE(Java 2 Platform Enterprise Edition)企业版<ul>
<li>是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如 Servlet、Jsp等，主要针对于Web应用程序开发 </li>
</ul>
</li>
</ul>
</li>
<li>D:Java语言特点<ul>
<li>简单性        </li>
<li>解释性</li>
<li>面向对象        </li>
<li>高性能</li>
<li>分布式处理    </li>
<li>多线程</li>
<li>健壮性        </li>
<li>动态</li>
<li>结构中立        </li>
<li>安全性</li>
<li>开源</li>
<li>跨平台<br>###01.08_Java语言基础(Java语言跨平台原理)(掌握)</li>
</ul>
</li>
<li>A:什么是跨平台性</li>
<li>B:Java语言跨平台原理<ul>
<li>只要在需要运行java应用程序的操作系统上，先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。</li>
</ul>
</li>
<li>C:Java语言跨平台图解<ul>
<li>write once ,run anywhere!(一处编译,到处运行)<br>###01.09_Java语言基础(JRE和JDK的概述)(掌握)</li>
</ul>
</li>
<li>A:什么是JRE<ul>
<li>包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等，如果想要运行一个开发好的Java程序，计算机中只需要安装JRE即可。</li>
<li>JRE:JVM+类库。 </li>
</ul>
</li>
<li>B:什么是JDK<ul>
<li>JDK是提供给Java开发人员使用的，其中包含了java的开发工具，也包括了JRE。所以安装了JDK，就不用在单独安装JRE了。</li>
<li>其中的开发工具：编译工具(javac.exe)  打包工具(jar.exe)等<ul>
<li>JDK:JRE+JAVA的开发工具。</li>
</ul>
</li>
</ul>
</li>
<li>C:为什么JDK中包含一个JRE<ul>
<li>为什么JDK中包含一个JRE呢？<ul>
<li>开发完的程序，需要运行一下看看效果。</li>
</ul>
</li>
</ul>
</li>
<li>D:JDK,JRE,JVM的作用和关系<br>###01.10_Java语言基础(JDK的下载和安装过程图解)(了解)</li>
<li>A:JDK的下载<ul>
<li>a:官网 <a href="http://www.oracle.com" target="_blank" rel="noopener">http://www.oracle.com</a></li>
<li>b:演示下载流程</li>
</ul>
</li>
<li>B:JDK的安装<ul>
<li>a:傻瓜式安装<ul>
<li>双击安装程序，然后一路next即可(但是不建议)</li>
</ul>
</li>
<li>b:安装的推荐方式<ul>
<li>安装路径不要有中文或者特殊符号如空格等。</li>
<li>所有和开发相关的软件最好安装目录统一。<ul>
<li>举例：我的JDK安装路径<ul>
<li>D:\develop\Java\jdk1.7.0_72</li>
</ul>
</li>
</ul>
</li>
<li>当提示安装JRE时，可以选择不安装。建议还是安装上。</li>
</ul>
</li>
<li>c:演示安装流程<ul>
<li>可以先在d盘建立一个文件夹develop</li>
<li>然后演示安装过程</li>
</ul>
</li>
</ul>
</li>
<li>C:验证安装是否成功<ul>
<li>a:通过DOS命令，切换到JDK安装的bin目录下。<ul>
<li>D:\develop\Java\jdk1.7.0_72\bin</li>
</ul>
</li>
<li>b:然后分别输入javac和java，如果正常显示一些内容，说明安装成功</li>
</ul>
</li>
</ul>
<p>###01.11_Java语言基础(JDK安装路径下的目录解释)(了解)</p>
<ul>
<li>a:bin目录：该目录用于存放一些可执行程序。<ul>
<li>如javac.exe（java编译器）、java.exe(java运行工具)，jar.exe(打包工具)和* javadoc.exe(文档生成工具)等。</li>
</ul>
</li>
<li>b:db目录：db目录是一个小型的数据库。<ul>
<li>从JDK 6.0开始，Java中引用了一个新的成员JavaDB，这是一个纯Java实现、开源的数据库管理系统。这个数据库不仅轻便，而且支持JDBC 4.0所有的规范，在学习JDBC 时，不再需要额外地安装一个数据库软件，选择直接使用JavaDB即可。</li>
</ul>
</li>
<li>c:jre目录：”jre”是 Java Runtime Environment 的缩写，意为Java程序运行时环境。此目录是Java运行时环境的根目录，它包括Java虚拟机，运行时的类包，Java应用启动器以及一个bin目录，但不包含开发环境中的开发工具。</li>
<li>d:include目录：由于JDK是通过C和C++实现的，因此在启动时需要引入一些C语言的头文件，该目录就是用于存放这些头文件的。</li>
<li>e:lib目录：lib是library的缩写，意为 Java 类库或库文件，是开发工具使用的归档包文件。</li>
<li>f:src.zip文件：src.zip为src文件夹的压缩文件，src中放置的是JDK核心类的源代码，通过该文件可以查看Java基础类的源代码。</li>
</ul>
<p>###01.12_Java语言基础(Java开发工具介绍)(了解)</p>
<ul>
<li>A:notepad(微软操作系统自带)</li>
<li>B:Editplus/Notepad++</li>
<li>C:Eclipse</li>
<li>D:MyEclipse<ul>
<li>给大家简单的介绍一下这些工具，然后说说我们使用这些工具的顺序。</li>
<li>基础班：先notepad，然后Editplus，再Eclipse。</li>
<li>就业班：MyEclipse和Eclipse都用。</li>
</ul>
</li>
</ul>
<p>###01.13_Java语言基础(HelloWorld案例的编写和运行)(掌握)</p>
<ul>
<li>A:定义类</li>
<li>B:写main方法</li>
<li>C:写输出语句</li>
<li>D:Java程序开发运行与工作原理</li>
<li><p>E:编译和运行程序</p>
<pre><code>class HelloWorld {
    public static void main(String[] args) {
        System.out.println(&quot;HelloWorld&quot;);
    }
}
</code></pre></li>
</ul>
<p>###01.14_Java语言基础(HelloWorld案例常见问题)(掌握)</p>
<ul>
<li>A:找不到文件(都演示一下，让学生看看出现的都是什么问题)<ul>
<li>a:文件扩展名隐藏导致编译失败</li>
<li>b:文件名写错了</li>
</ul>
</li>
<li>B:单词拼写问题(都演示一下，让学生看看出现的都是什么问题)<ul>
<li>a:class写成Class</li>
<li>b:String写成string</li>
<li>c:System写成system</li>
<li>d:main写成mian</li>
</ul>
</li>
<li>C:括号匹配问题(都演示一下，让学生看看出现的都是什么问题)<ul>
<li>a:把类体的那对大括号弄掉一个</li>
<li>b:把方法体的那对大括号弄掉一个</li>
<li>c:把输出语句的那对小括号弄掉一个</li>
</ul>
</li>
<li>D:中英文问题(都演示一下，让学生看看出现的都是什么问题)<ul>
<li>a:提示信息：错误: 非法字符: \????的格式</li>
<li>注意：java编程中需要的基本上都是英文字符</li>
</ul>
</li>
</ul>
<p>###01.15_Java语言基础(Java语言的书写格式(约定俗成))    (掌握)</p>
<ul>
<li>1,大括号要对齐,并且成对写</li>
<li>2,左大括号前面有空格</li>
<li>3,遇到左大括号要缩进,Tab</li>
<li>4,方法和程序块之间加空行让程序看起来清晰</li>
<li>5,并排语句之间加空格,例如for语句</li>
<li>6,运算符两侧加空格</li>
</ul>
<p>###01.16_Java语言基础(path环境变量的作用及配置方式1)(掌握)</p>
<ul>
<li>A:在JDK的bin目录下开发程序容易产生的问题<ul>
<li>a:如果文件过多，不方便管理</li>
<li>b:删除自己写过的不需要的文件，可能不小心把JDK自带的工具给删除了</li>
</ul>
</li>
<li>B:如何解决问题呢<ul>
<li>notepad这样的命令为什么在任何路径下都能够执行,配置path环境变量</li>
</ul>
</li>
<li>C:配置方式<ul>
<li>a:xp系统<ul>
<li>右键点击桌面计算机→选择属性→选择高级选项卡→点击环境变量→下方系统变量中查找path→双击path→将jdk安装目录下的bin目录添加到最左边并添加分号。</li>
</ul>
</li>
<li>b:win7/win8系统<ul>
<li>右键点击桌面计算机→选择属性→选择高级系统设置→选择高级选项卡→点击环境变量→下方系统变量中查找path→双击path→将jdk安装目录下的bin目录添加到最左边并添加分号。</li>
</ul>
</li>
</ul>
</li>
<li>path配置的是可执行的文件.exe,配置后可以在不同的盘符下访问path路径下的可执行文件</li>
</ul>
<p>###01.17_Java语言基础(Path环境变量的配置方式2)(掌握)</p>
<ul>
<li>A:先配置JAVA_HOME</li>
<li>B:再修改path</li>
<li>C:最后说一下path是有先后顺序关系的</li>
</ul>
<p>###01.18_Java语言基础(classpath环境变量的作用及其配置)(了解)</p>
<ul>
<li>A:为什么要配置classpath</li>
<li>B:classpath配置的原理</li>
<li><p>C:如何配置classpath</p>
</li>
<li><p>path和classpath的区别</p>
<ul>
<li>path配置的是可执行的文件.exe,配置后可以在不同的盘符下访问path路径下的可执行文件</li>
<li>classpath配置的java的类文件,就是.class文件</li>
</ul>
</li>
</ul>
<p>###01.19_Java语言基础(Editplus开发程序并编译运行)(了解)</p>
<ul>
<li>A:配置快捷键编译运行</li>
<li>B:去除备份文件</li>
</ul>
<p>###01.20_Java语言基础(注释概述及其分类)(掌握)</p>
<ul>
<li>A:什么是注释</li>
<li><p>B:注释的分类及讲解</p>
<ul>
<li>文档注释目前不讲，说后面讲解</li>
</ul>
</li>
<li><p>注释的作用</p>
<ul>
<li>A:解释说明程序</li>
<li>B:帮助我们调试错误</li>
</ul>
</li>
</ul>
<p>###01.21_Java语言基础(关键字的概述和使用)(掌握)</p>
<ul>
<li>A:什么是关键字<ul>
<li>被Java语言赋予特定含义的单词 </li>
</ul>
</li>
<li>B:关键字的特点<ul>
<li>组成关键字的字母全部小写 </li>
</ul>
</li>
<li>C:常见关键字<ul>
<li>public static void class等 </li>
</ul>
</li>
<li>D:关键字的注意事项<ul>
<li>goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记，非常直观 </li>
</ul>
</li>
</ul>
<p>###01.22_Java语言基础(标识符的概述和组成规则)(掌握)</p>
<ul>
<li>A:什么是标识符<ul>
<li>就是给类,接口,方法,变量等起名字时使用的字符序列 </li>
</ul>
</li>
<li>B:标识符的组成规则<ul>
<li>英文大小写字母</li>
<li>数字字符</li>
<li>$和_ </li>
</ul>
</li>
<li>C:标识符注意事项<ul>
<li>1,不能使用关键字</li>
<li>2,不能数字开头 </li>
</ul>
</li>
</ul>
<p>###01.23_Java语言基础(标识符中常见的命名规则)(了解)</p>
<ul>
<li>见名知意</li>
<li>A:包<ul>
<li>最好是域名倒过来,要求所有的字母小写 </li>
</ul>
</li>
<li>B:类或者接口<ul>
<li>如果是一个单词首字母大写</li>
<li>如果是多个单词每个单词首字母大写(驼峰标识) </li>
</ul>
</li>
<li>C:方法或者变量<ul>
<li>如果是一个单词全部小写</li>
<li>如果是多个单词,从第二个单词首字母大写 </li>
</ul>
</li>
<li>D:常量<ul>
<li>如果是一个单词,所有字母大写</li>
<li>如果是多个单词,所有的单词大写,用下划线区分每个单词 </li>
</ul>
</li>
</ul>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
  </section>

  


          </div>
          


          

        </div>
        
          
  
  <div class="sidebar-toggle">
    <div class="sidebar-toggle-line-wrap">
      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
    </div>
  </div>

  <aside id="sidebar" class="sidebar">
    
    <div class="sidebar-inner">

      

      

      <section class="site-overview-wrap sidebar-panel sidebar-panel-active">
        <div class="site-overview">
          <div class="site-author motion-element" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
            
              <p class="site-author-name" itemprop="name">John Doe</p>
              <p class="site-description motion-element" itemprop="description"></p>
          </div>

          <nav class="site-state motion-element">

            
              <div class="site-state-item site-state-posts">
              
                <a href="/blog/archives/">
              
                  <span class="site-state-item-count">9</span>
                  <span class="site-state-item-name">posts</span>
                </a>
              </div>
            

            
              
              
              <div class="site-state-item site-state-categories">
                
                  <span class="site-state-item-count">2</span>
                  <span class="site-state-item-name">categories</span>
                
              </div>
            

            
              
              
              <div class="site-state-item site-state-tags">
                
                  <span class="site-state-item-count">11</span>
                  <span class="site-state-item-name">tags</span>
                
              </div>
            

          </nav>

          
            <div class="feed-link motion-element">
              <a href="/blog/atom.xml" rel="alternate">
                <i class="fa fa-rss"></i>
                RSS
              </a>
            </div>
          

          

          
          

          
          

          

        </div>
      </section>

      

      

    </div>
  </aside>


        
      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="footer-inner">
        <div class="copyright">&copy; <span itemprop="copyrightYear">2018</span>
  <span class="with-love">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">John Doe</span>

  
</div>


  <div class="powered-by">Powered by <a class="theme-link" target="_blank" href="https://hexo.io">Hexo</a></div>



  <span class="post-meta-divider">|</span>



  <div class="theme-info">Theme &mdash; <a class="theme-link" target="_blank" href="https://github.com/iissnan/hexo-theme-next">NexT.Muse</a> v5.1.4</div>




        







        
      </div>
    </footer>

    
      <div class="back-to-top">
        <i class="fa fa-arrow-up"></i>
        
      </div>
    

    

  </div>

  

<script type="text/javascript">
  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
    window.Promise = null;
  }
</script>









  












  
  
    <script type="text/javascript" src="/blog/lib/jquery/index.js?v=2.1.3"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/velocity/velocity.min.js?v=1.2.1"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
  


  


  <script type="text/javascript" src="/blog/js/src/utils.js?v=5.1.4"></script>

  <script type="text/javascript" src="/blog/js/src/motion.js?v=5.1.4"></script>



  
  

  

  


  <script type="text/javascript" src="/blog/js/src/bootstrap.js?v=5.1.4"></script>



  


  




	





  





  












  





  

  

  

  
  

  

  

  

</body>

</html>
